﻿using System.Collections.Generic;
using System.Linq;
using System.Text;
using Cesave.Domain.PermisosModule.Entities;
using Cesave.Domain.Core.Specification;
using Cesave.Domain.PermisosModule.Resources;
using System;

namespace Cesave.Domain.PermisosModule.Contracts.Afianzadoras
{
	/// <summary>
	/// 
	/// </summary>
	public class AfianzadoraByGuidSpecification
		: Specification<Afianzadora>
	{
		#region Private properties

		private Guid _afianzadoraGuid = default(Guid);

		#endregion

		#region Constructor

		/// <summary>
		/// 
		/// </summary>
		/// <param name="afianzadoraGuid"></param>
		public AfianzadoraByGuidSpecification(Guid afianzadoraGuid)
		{
			if (afianzadoraGuid == Guid.Empty)
				throw new ArgumentException(Messages.exception_InvalidArgument, "afianzadoraGuid");
			_afianzadoraGuid = afianzadoraGuid;
		}

		#endregion

		#region Specification overrides

		/// <summary>
		/// 
		/// </summary>
		/// <returns></returns>
		public override System.Linq.Expressions.Expression<Func<Afianzadora, bool>> SatisfiedBy()
		{
			Specification<Afianzadora> specification = new DirectSpecification<Afianzadora>(a => a.AfianzadoraGuid == _afianzadoraGuid);
			return specification.SatisfiedBy();
		}

		#endregion
	}
}